#ifndef MESSAGE_H
#define MESSAGE_H

#include <QString>
#include <QDateTime>

class Message
{
public:
    enum Type {
        Error = 0,
        Normal,
        Chat,
        GroupChat,
        Headline
    };

    enum State {
        None = 0,
        Active,
        Inactive,
        Gone,
        Composing,
        Paused
    };

    Message(QString to, QString from);
    Message(QString to, QString from, QString body);
    Message(QString to, QString from, Message::State state);

    Message::State state();
    Message::Type type();
    QString from();
    QString to();
    QString body();
    QString thread();
    QDateTime stamp();
    QString subject();

    void setState(Message::State state);
    void setType(Message::Type type);
    void setFrom(QString from);
    void setTo(QString to);
    void setBody(QString body);
    void setStamp(QDateTime stamp);
    void setSubject(QString subject);

private:
    Message::State m_state;
    Message::Type m_type;
    QString m_from;
    QString m_to;
    QString m_body;
    QString m_thread;
    QDateTime m_stamp;
    QString m_subject;
};

#endif // MESSAGE_H
